Guarding Programs Against Attacks with Dynamic Data Flow Analysis
نویسندگان
چکیده
The defense of computers against malicious attackers is a growing challenge. While techniques have been proposed for guarding programs against specific attacks, such as buffer overruns and format string attacks, few solutions are flexible enough to deal with a wide range of attacks. However, most attacks, known and unknown, involve manipulation of input data to the program—a problem well suited to data flow analysis. Many data flow analyses can be performed both statically and dynamically, albeit with different semantics. The dynamic version—known as dynamic data flow analysis—tracks the flow of abstract properties as the program executes, and is a form of program monitoring. Furthermore, dynamic data flow analysis can accurately monitor security-related flow properties that current methods, such as inlined reference monitors, cannot. Unfortunately, a straightforward implementation of dynamic data flow analysis can be prohibitively expensive because it attaches extra state to every object and monitors the program at every statement. This paper presents a system for using dynamic data flow analysis to dynamically monitor programs. We argue that data flow analysis is a flexible mechanism for implementing a wide range of program monitors, including security-enforcing monitors. We also show how our system unites static and dynamic data flow analysis: the same specification that defines what to dynamically monitor can also be used to drive a static analysis that optimizes the resulting system. We apply our system to the construction of monitors that guard programs against format string vulnerabilities. For a set of five open-source server programs, we find that 80% of the program statements are instrumented in a straightforward implementation of dynamic data flow analysis. When the corresponding static analysis is used, only 0.5% of the statements are instrumented, thus demonstrating the power of our system.
منابع مشابه
Intrusion Detection Based On Dynamic Information Flow Analysis
This paper presents a new approach to detecting intrusions against application software, whose primary goal is facilitating identification and repair of security vulnerabilities rather than permitting online response to attacks. The approach employs fine-grained dynamic information flow analysis in conjunction with policy enforcement, signature matching, and anomaly detection. Program execution...
متن کاملExploit Dynamic Data Flows to Protect Software Against Semantic Attacks
Unauthorized code modification based on reverse engineering is a serious threat for software industry. Virtual machine based code obfuscation is emerging as a powerful technique for software protection. However, the current code obfuscation techniques are vulnerable under semantic attacks which use dynamic profiling to transform an obfuscated program to construct a simpler program that is funct...
متن کاملSelf-Guarding Cryptographic Protocols against Algorithm Substitution Attacks
We put forward the notion of self-guarding cryptographic protocols as a countermeasure to algorithm substitution attacks. Such self-guarding protocols can prevent undesirable leakage by subverted algorithms if one has the guarantee that the system has been properly working in an initialization phase. Unlike detection-based solutions they thus proactively thwart attacks, and unlike reverse firew...
متن کاملAn Execution-flow Based Method for Detecting Cross-Site Scripting of Ajax Applications
We present an execution-flow analysis for JavaScript programs running in a web browser to prevent Cross-site Scripting (XSS) attacks. We construct finite-state automata (FSA) to model the client-side behavior of Ajax applications under normal execution. Our system is deployed in proxy mode. The proxy analyzes the execution flow of client-side JavaScript before the requested web pages arrive at ...
متن کاملThreshold Implementation as a Countermeasure against Power Analysis Attacks
One of the usual ways to find sensitive data or secret parameters of cryptographic devices is to use their physical leakages. Power analysis is one of the attacks which lay in such a model. In comparison with other types of side-channels, power analysis is so efficient and has a high success rate. So it is important to provide a countermeasure against it. Different types of countermeasures use ...
متن کامل